package com.clouddot.baipai.contract;


import com.clouddot.baipai.http.entity.response.addEvaluateResponse;
import com.clouddot.baipai.http.entity.response.getBanPaiModelResponse;
import com.clouddot.baipai.http.entity.response.getClassInfoResponse;
import com.clouddot.baipai.http.entity.response.getCommitteeResponse;
import com.clouddot.baipai.http.entity.response.getIndexListResponse;
import com.clouddot.baipai.http.entity.response.getPersonInfoResponse;
import com.clouddot.baipai.http.entity.response.loginResponse;

import org.wxy.sdk.base.IBaseModel;
import org.wxy.sdk.base.IBasePresenter;
import org.wxy.sdk.base.IBaseView;

import java.util.ArrayList;

import rx.Observable;

/**
 * Created by wxy on 2018/05/27.
 *
 * @author wxy
 */
public interface IH_SMainActivityContract {

    interface IPresenter extends IBasePresenter {
        void getClassInfo(String carddevid);

        void login(String code);

        void login(String code, String filepath);

        void getPerson();

        void getWeather(String cityKey);

        void getBanPaiModel();

        void  getCommittee(String ClassId,String code);

        void addEvaluate(String ClassId,String ObjectId,String ValType,String UserId,String WeekId,String SetValue);

        void getIndexList(String ObjectType,int pageindex,int pagesize);
    }

    interface IModel extends IBaseModel {
        Observable<getClassInfoResponse> getClassInfo(String acttype, String carddevid);

        Observable<loginResponse> login(String acttype, String code);

        Observable<loginResponse> loginByPhoto(String acttype, String code, String filepath);

        Observable<getPersonInfoResponse> getPerson(String acttype);

        Observable<String> getWeather(String cityKey);

        Observable<getBanPaiModelResponse> getBanPaiModel(String acttype, String paramname);

        Observable<ArrayList<getCommitteeResponse>> getCommittee(String acttype, String ClassId, String code);

        Observable<addEvaluateResponse>  addEvaluate(String acttype, String ClassId, String ObjectId, String ValType, String UserId, String WeekId,String SetValue);

        Observable<getIndexListResponse> getIndexList(String acttype,String ObjectType, int pageindex, int pagesize);
    }

    interface IView extends IBaseView {
        void success(int flag, Object object);

        void fail(int flag, String errMsg);
    }
}
